package cliente;

import pessoa.Documento;

import exception.*;

/**Interface que cria o contrato com metodos de acessos de dados
 * do um repositorio de clientes.
 * 
 * @author Fernando Fontelles Filho
 *
 */

public interface IRepositorioClientes {
	
	/**
	 * Atualiza os dados de um cliente 
	 */
	public void atualizar(Cliente cliente)
		throws ClienteInexistenteException;
		
	/**
	 * Verifica se um cliente existe
	 */
	public boolean existe(Documento doc);
	
	/**
	 * Cadastra clientes em um repositorio de clientes
	 */
	public void inserir(Cliente cliente) throws ClienteExistenteException;
	
	/**
	 * Busca um determinado cliente no repositorio
	 */
	public Cliente procurar(Documento doc) throws ClienteInexistenteException;

	/**
	 * Removeo cliente do repositorio
	 */
	public void remover(Documento doc) throws ClienteInexistenteException;

}

